package cn.jiangjiesheng.bootstrap.commons.annotation;

import org.springframework.boot.logging.LogLevel;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * Created by dev@jiangjiesheng.cn on 2022/11/24 <br/>
 *
 * @author dev@jiangjiesheng.cn
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LatencyLogging {
    /**
     * 时间长度
     * @return
     */
    int threshold() default 100;

    /**
     * 是否总是答应延时
     * @return
     */
    boolean always() default false;

    /**
     * 时间单位
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 日志等级
     * @return
     */
    LogLevel logLevel() default LogLevel.WARN;
}
